#pragma once
#include "rtdev/safetyboard/scbitf.h"
namespace rtdev {

class DefaultCab : public rtdev::ScbCabItf
{
public:
    DefaultCab();
    virtual int get_hw_ver();
    virtual int get_sw_ver();
    virtual std::string get_version_str();
    virtual double get_temperature();
    virtual double get_voltage();
    virtual bool is_poweroff_ipc();
    virtual int do_poweroff_ipc();
    virtual int disable_robot_commu(bool dis);
    virtual int get_current_run_time();
    virtual int get_total_run_time();

    struct Stat
    {
        int hw_ver, sw_ver;
        char version_status;  //'D':Debug, 'R':Release
        double pdu_temp;
        double cab_voltage;
        int cur_run_time;
        int total_run_time;
    } stat;
    struct Cmd
    {
        bool pwr_ipc;
        bool dis_robot_commu;
        uint8_t front_pnal_rgb_ctl;
    } cmd;

    SafetyBoardItf* scb;
};

}  // namespace rtdev
